1. Field of the Invention
This invention is related to the field of multiprocessors and, more particularly, to chip multiprocessors (CMPs) and implementing redundant execution for high reliability in CMPs.
2. Description of the Related Art
Fault-tolerant computer systems are used in a variety of applications in the computing world. For example, many servers are implemented on fault-tolerant systems so that the servers may be available as close to 24 hours a day as possible. Any mission-critical computing functions may benefit from being assigned to fault-tolerant computer systems.
One of the aspects of fault-tolerant computer systems is high reliability through the early detection of errors in operation. For example, some fault-tolerant systems may implement high reliability by including multiple processors and having them redundantly execute the same software code. The results of executing the code can be compared, and any discrepancies may be detected as an error. The processors are discrete, individual integrated circuits, and thus such a solution is costly both in terms of the number of integrated circuits needed and the circuit board space required to connect the processors to the rest of the computer system. Additionally, since the processors are discrete, controlling the processors to execute in lockstep or to otherwise synchronize is complex and error prone, and typically requires additional circuitry to be included in the computer system (external from the processors) to carry out.